#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/mman.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/wait.h>

/**
 * 存储映射 被不同进程使用 写
 * @return
 */
int main() {
    int fd = -1;
    int ret = -1;
    pid_t pid = -1;
    void * addr = NULL;
    //打开文件
    fd = open("storagemapping",O_RDWR);
    if(-1 == fd){
        perror("open");
        return 1;
    }
    //文件映射到内存
    addr = mmap(NULL,1024,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0);
    if(addr == MAP_FAILED){
        perror("mmap");
        return 1;
    }
    printf("文件存储映射完成！\n");
    //关闭文件
    close(fd);
    printf("写进程\n");
    memcpy(addr,"abc", 3);

    //断开映射
    munmap(addr,1024);

    return 0;
}
